<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
      xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head th:include="include :: header"></head>
<body class="hold-transition skin-yellow sidebar-mini">
<section class="content-header">
    <h1>变更生产令</h1>
</section>
<section class="content">
    <div class="row">
        <div class="col-xs-12">
            <div class="box">
                <div class="box-header">
                    <form id="queryForm" class="form-horizontal">

                    </form>
                </div>
                <div class="box-body">
                    <form id="splitProdOrdForm" class="form-horizontal bg-white">
                        <input id="proId" th:value="${proId}" type="hidden" style="display: none" readonly="readonly"/>
                        <input id="hideProCode" type="hidden" style="display: none" readonly="readonly"/>
                        <input id="hideProNum" type="hidden" style="display: none" readonly="readonly"/>
                        <div class="col-md-6">
                            <div class="col-md-12 form-group">
                                <label class="control-label">项目信息</label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">项目编号</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <span id="proCode"></span>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">项目名称</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <span id="proName"></span>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">项目数量</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <span id="proQty"></span>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">交货时间</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <span id="cusDeliveryDate"></span>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">需方</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <span id="customer"></span>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">设计类别</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <span id="designStr"></span>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">安装地点</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <span id="insSite"></span>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">销售类型</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <span id="prodTypeStr"></span>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">特种设备</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <span id="speEquipTypeStr"></span>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">项目需求</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <span id="proRequirements"></span>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">制造范围</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <span id="manufScope"></span>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:70px;padding-right: 0px;padding-left: 10px;">相关文件</label>
                                <label id="lbl_files" class="control-label" style="text-align: left;padding-left: 5px;">

                                </label>
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="col-md-12 form-group">
                                <label id="changeTitle" class="control-label badge label-success">待新增生产令</label>
<!--                                <label class="control-label" style="text-align: left;padding-left: 5px;">-->
<!--                                    <button type="button" onclick="clearForm()" class="btn btn-xs btn-success">转为新增</button>-->
<!--                                </label>-->
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:90px;padding-right: 0px;padding-left: 10px;">生产令编号</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <input name="prodNo" type="text" class="form-control" readonly="readonly"/>
                                    <input name="prodId" type="hidden" style="display: none" readonly="readonly"/>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:90px;padding-right: 0px;padding-left: 10px;">项目名称</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <input name="prodNam" type="text" class="form-control" readonly="readonly"/>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:90px;padding-right: 0px;padding-left: 10px;">数量</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <input name="prodNum" type="text" class="form-control" oninput="handleInput(this)"/>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:90px;padding-right: 0px;padding-left: 10px;">交货期</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <input name="prodDelDat" type="text" class="form-control datepicker"
                                           readonly="readonly"/>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:90px;padding-right: 0px;padding-left: 10px;">类别</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <input name="prodTyp"  type="radio" value="1"/>设备类&nbsp;&nbsp;&nbsp;&nbsp;
                                    <input name="prodTyp" checked="checked" type="radio" value="2"/>其他
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:90px;padding-right: 0px;padding-left: 10px;">是否重点</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <input name="prodIsKey" type="radio" value="1"/>是&nbsp;&nbsp;&nbsp;&nbsp;
                                    <input name="prodIsKey"  checked="checked" type="radio" value="0"/>否
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:90px;padding-right: 0px;padding-left: 10px;vertical-align: top">产品分类</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <input name="prodBacTyp" class="form-control" type="text" maxlength="255"/>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:90px;padding-right: 0px;padding-left: 10px;vertical-align: top">备注</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <textarea name="prodRem" style="resize: none" class="form-control" maxlength="255"
                                              rows="4" cols="70"></textarea>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="control-label"
                                       style="text-align: left;width:90px;padding-right: 0px;padding-left: 10px;vertical-align: top">变更原因</label>
                                <label class="control-label" style="text-align: left;padding-left: 5px;">
                                    <input name="changeReason" class="form-control" type="text" maxlength="255"/>
                                </label>
                            </div>
                            <div class="col-md-12 form-group">
                                <button id="btn_saveUpdate" type="button" class="btn btn-success pull-right" shiro:hasPermission="pro:release:commit"
                                        style="margin-left: 15px">新增
                                </button>
<!--                                <button id="btn_saveAdd" type="button" class="btn btn-success pull-right">新增生产令</button>-->
                            </div>
                        </div>
                        <div class="col-md-12">
                            <div class="col-md-12 form-group">
                                <h3>已创建生产令</h3>
                            </div>
                            <table id="bootstrap-table-tempProdOrd"></table>
                            <button id="btn_close" type="button" class="btn btn-default pull-right"
                                    style="margin-left: 15px;margin-top: 10px;">取消变更
                            </button>
                            <button id="btn-save" type="button" style="margin-top: 10px;" shiro:hasPermission="pro:release:commit"
                                    class="btn btn-info file-contract btn-file pull-right">保存变更
                            </button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</section>
<div th:include="include :: footer"></div>
<script th:inline="javascript">
    let tempData;
    let removeData = new Array;
    $(function () {
        $("#btn-save").hide();

        loadProjectInfo($("#proId").val());
        /**
         * 取消变更
         */
        $("#btn_close").on('click', function () {
            window.opener.reLoad();
            window.open('', '_self');
            window.close();
        });

        /**
         * 保存编辑到临时表中
         */
        $("#btn_saveUpdate").on('click', function () {
                for (let i = 0; i < tempData.length; i++) {
                    if (tempData[i].prodNo === $("#splitProdOrdForm [name='prodNo']").val()) {
                        tempData[i].prodNo = $("#splitProdOrdForm [name='prodNo']").val();
                        tempData[i].prodId = $("#splitProdOrdForm [name='prodId']").val();
                        tempData[i].proName = $("#splitProdOrdForm [name='prodNam']").val();
                        tempData[i].prodNum = $("#splitProdOrdForm [name='prodNum']").val();
                        tempData[i].prodDelDat = $("#splitProdOrdForm [name='prodDelDat']").val();
                        tempData[i].prodRem = $("#splitProdOrdForm [name='prodRem']").text();
                        tempData[i].prodBacTyp = $("#splitProdOrdForm [name='prodBacTyp']").val();
                        tempData[i].prodTyp = $("#splitProdOrdForm [name='prodTyp']:checked").val();
                        tempData[i].prodIsKey = $("#splitProdOrdForm [name='prodIsKey']:checked").val();
                        tempData[i].prodProCod = $("#proCode").text();
                        tempData[i].changeReason =  $("#splitProdOrdForm [name='changeReason']").val();
                        tempData[i].os = xyh.getOS();
                        tempData[i].browser = xyh.getBrowser();
                        break;
                    }
                }
                loadTempProdOrdTable(tempData);

        })
        /**
         * 把临时表中的数据保存到数据库中
         */
        $('#btn-save').on('click', function () {
            let num = 0;
            for (let i = 0; i < tempData.length; i++) {
                num += parseInt(tempData[i].prodNum);
            }
            if (num === 0) {
                js.modal.warning("尊敬的用户，请您至少创建一条生产令，并且一次性把项目拆分完毕。");
                return;
            }
            if (num != parseInt($("#hideProNum").val())) {
                js.modal.warning("尊敬的用户,生产令的项目数量必须等于项目数量！");
                return;
            }
            js.post({
                url: ctx + 'prodOrd/checkNum',
                type: 'post',
                traditional: true,            // 阻止深度序列化， 使参数可以使用数组
                dataType: 'json',
                contentType: "application/x-www-form-urlencoded",
                data: {
                    num: num,
                    prodProCod: $("#proCode").text()
                },
                async: true,                // 异步执行
                success: function (result) {
                    if (result.type === web_status.SUCCESS) {
                        //2021年6月24日13:06:48
                        //领导说删除生产令只管自己生产令的，不需要管其他模块，就算查询了转序了也不用管
                        js.post({
                            url: ctx + 'prodOrd/saveChange',
                            type: 'post',
                            traditional: true,            // 阻止深度序列化， 使参数可以使用数组
                            dataType: 'json',
                            contentType: "application/x-www-form-urlencoded",
                            data: {
                                prodJson: JSON.stringify(tempData),
                                removeJson: JSON.stringify(removeData)
                            },
                            async: true,                // 异步执行
                            success: function (result) {
                                if (result.type === web_status.SUCCESS) {

                                    js.modal.success(result.msg);
                                    window.opener.reLoad();
                                    window.open('', '_self');
                                    window.close();
                                } else {
                                    js.modal.warning(result.msg);
                                }
                            },
                            error: function () {
                                js.modal.fail();
                            }
                        });
                    } else {
                        js.modal.warning(result.msg);
                    }
                },
                error: function () {
                    js.modal.fail();
                }
            });

        });
    });
    /**
     * 输入检测
     * @param obj
     */
    function handleInput(obj) {
        if (obj.value.length == 1) {
            obj.value = obj.value.replace('.', '');
            obj.value = obj.value.replace(/[^1-9]/g, '')
        } else {
            obj.value = obj.value.replace(/\D/g, '')
        }
    }
    /**
     * 获取项目信息
     */
    function loadProjectInfo(proId) {
        js.post({
            url: ctx + 'prodOrd/getProInfo',
            type: 'post',
            traditional: true,            // 阻止深度序列化， 使参数可以使用数组
            dataType: 'json',
            contentType: "application/x-www-form-urlencoded",
            data: {
                proId: proId
            },
            async: true,                // 异步执行
            success: function (result) {
                if (result.type === web_status.SUCCESS) {
                    let project = result.data.project;
                    let files = result.data.files;
                    $("#splitProdOrdForm").fillSpan(project);
                    $("#hideProCode").val(project.proCode);
                    $("#hideProNum").val(project.proQty);
                    $("#lbl_files").empty();
                    for (let i = 0; i < files.length; i++) {
                        $("#lbl_files").append('<a href="/prodOrd/downloadProjectFile/' + files[i].id + '">' + files[i].fileName + '</a>&nbsp;&nbsp;&nbsp;&nbsp;');
                    }
                    $("#splitProdOrdForm [name='prodNam']").val(project.proName);
                    //获取已存在的生产令列表
                    loadAlreadyExistsProdList(project.proCode);
                } else {
                    js.modal.warning(result.msg);
                }
            },
            error: function () {
                js.modal.fail();
            }
        });
    }

    /**
     * 获取已存在的生产令列表
     * @param proCode
     */
    function loadAlreadyExistsProdList(proCode) {
        js.post({
            url: ctx + 'prodOrd/loadAlreadyExistsProdList',
            type: 'post',
            traditional: true,            // 阻止深度序列化， 使参数可以使用数组
            dataType: 'json',
            contentType: "application/x-www-form-urlencoded",
            data: {
                proCode: proCode
            },
            async: true,                // 异步执行
            success: function (result) {
                if (result.type === web_status.SUCCESS) {
                    tempData = result.data;
                    loadTempProdOrdTable(tempData);
                    if (tempData.length >= 0 && tempData.length < 9) {
                        $("#splitProdOrdForm [name='prodNo']").val($("#proCode").text() + '-0' + eval(tempData.length + 1));
                    } else if (tempData.length >= 9) {
                        $("#splitProdOrdForm [name='prodNo']").val($("#proCode").text() + '-' + eval(tempData.length + 1));
                    }
                    showEditInfo(tempData[0].orderNo);
                } else {
                    js.modal.warning(result.msg);
                }
            },
            error: function () {
                js.modal.fail();
            }
        });
    }

    /**
     * 加载项目表数据
     */
    function loadTempProdOrdTable(data) {
        $("#bootstrap-table-tempProdOrd").bootstrapTable('destroy');
        tempTable = js.table.init({
            id: 'bootstrap-table-tempProdOrd',
            data: data,
            showExport: false,
            pagination: false,
            uniqueId: 'orderNo',
            columns: [
                {
                    title: '序号', width: '60',
                    formatter: function (value, row, index) {
                        return index + 1;

                    }
                },
                {
                    title: '生产令编号', field: 'prodNo',width: '120',
                    formatter: function (value, row, index) {
                        if (value != null) {
                            return value;
                        } else {
                            return '--';
                        }

                    }
                },
                {
                    title: '项目名称', field: 'proName',
                    formatter: function (value, row, index) {
                        if (value != null) {
                            return value;
                        } else {
                            return '--';
                        }

                    }
                },
                {
                    title: '项目数量', field: 'prodNum',width: '90',
                    formatter: function (value, row, index) {
                        if (value != null) {
                            return value;
                        } else {
                            return '--';
                        }
                    }
                },
                {
                    title: '需方', field: 'customer',width: '220',
                    formatter: function (value, row, index) {
                        if (value != null) {
                            return value;
                        } else {
                            return '--';
                        }

                    }
                },
                {
                    title: '是否重点', field: "prodIsKey",width: '90',
                    formatter: function (value, row, index) {
                        if (value != null) {
                            if (parseInt(value) === 1) {
                                return '是';
                            } else {
                                return '否';
                            }
                        } else {
                            return '--';
                        }
                    }
                },
                {
                    title: '类别', field: "prodTyp",width: '90',
                    formatter: function (value, row, index) {
                        if (value != null) {
                            if (parseInt(value) === 1) {
                                return '设备类';
                            } else if (parseInt(value) === 2) {
                                return '其他';
                            }
                        } else {
                            return '--';
                        }
                    }
                },
                {
                    title: '产品分类', field: "prodBacTyp",
                    formatter: function (value, row, index) {
                        if (value != null) {
                            return value;
                        } else {
                            return '--';
                        }
                    }
                },
                {
                    title: '创建时间', field: 'prodCreDat',width: '90'
                },
                {
                    title: '操作', width: '60',
                    formatter: function (value, row, index) {
                        let elements = new Array();
                        if (row.prodSta != 2) {
                            elements.push('<button class="btn btn-warning btn-xs" type="button" onclick="showEditInfo(' + row.orderNo + ')">选择</button>');
                            // elements.push('<button class="btn btn-danger btn-xs" type="button"  onclick="removeTempData(' + row.orderNo + ')">删除</button>');
                        }
                        return elements.join('');
                    }
                }
            ]
        });
    }

    /**
     * 加载编辑信息
     * @param prodId
     */
    function showEditInfo(orderNo) {
        let row = $("#bootstrap-table-tempProdOrd").bootstrapTable('getRowByUniqueId', orderNo);
        $("#splitProdOrdForm [name='prodNo']").val(row.prodNo);
        $("#splitProdOrdForm [name='prodId']").val(row.prodId);
        $("#splitProdOrdForm [name='prodNam']").val(row.proName);
        $("#splitProdOrdForm [name='prodNum']").val(row.prodNum);
        $("#splitProdOrdForm [name='prodDelDat']").val(row.prodDelDat);
        $("#splitProdOrdForm [name='prodRem']").text(row.prodRem);
        $("#splitProdOrdForm [name='prodBacTyp']").val(row.prodBacTyp);
        $("#splitProdOrdForm [name='prodTyp']").each(function () {
            if (parseInt($(this).val()) === row.prodTyp) {
                $(this).prop("checked", true);
            }
        });
        $("#splitProdOrdForm [name='prodIsKey']").each(function () {
            if (parseInt($(this).val()) === row.prodIsKey) {
                $(this).prop("checked", true);
            }
        });
        $("#btn_saveUpdate").text("变更");
        $("#changeTitle").text("待变更生产令");
        $("#changeTitle").attr("class","control-label badge label-warning");
        $("#btn-save").show();
    }

    // /**
    //  * 删除项目
    //  * @param orderNo
    //  */
    // function removeTempData(orderNo) {
    //     let newTempData = new Array();
    //     let removeProdNo;
    //     let order = 0;
    //     for (let i = 0; i < tempData.length; i++) {
    //         if (parseInt(tempData[i].orderNo) != parseInt(orderNo)) {
    //             tempData[i].orderNo = order + 1;
    //             newTempData.push(tempData[i]);
    //             order++;
    //         } else {
    //             if (tempData[i].prodId != null) {
    //                 removeData.push(tempData[i]);
    //                 removeProdNo = tempData[i].prodNo;
    //             }
    //         }
    //     }
    //     tempData = newTempData;
    //     if (tempData.length === 0) {
    //         $("#splitProdOrdForm [name='prodNo']").val($("#proCode").text());
    //     } else {
    //         $("#splitProdOrdForm [name='prodNo']").val(removeProdNo);
    //     }
    //     loadTempProdOrdTable(tempData)
    // }
</script>
</body>
</html>